package cn.fl.system.service;

import java.util.List;

import cmm.mid.core.framework.page.Pager;
import cmm.user.facade.system.condition.SysUsrFunAuthRQueryCondition;
import cmm.user.facade.system.dto.SysUsrFunAuthRDTO;
import cn.cmm.base.framework.exception.BaseException;
import cn.fl.system.vo.SysUsrFunAuthRVO;

/**
 * @Description: 系统用户功能权限关系表 客户端服务层接口
 * 业务层方法名称前缀：
 * 新增：add*
 * 删除：remove*
 * 修改：modify*
 * 查询对象：select* get*
 * 查询集合：search*
 */
public interface ISysUsrFunAuthRService {
	
	/**
	 * 获取唯一对象
	 * @param id 主键
	 * @return 对象DTO
	 */
	public SysUsrFunAuthRVO selectById(Long id)throws BaseException;
	
	/**
	 * 新增功能权限关系
	 * @param entity
	 * @return
	 */
    public boolean addSysUsrFunAuthR(List<SysUsrFunAuthRVO> list) throws BaseException;

    /**
     * 删除
     * @param id
     * @return
     */
    //public boolean removeById(Long id)throws BaseException;

    /**
     * 修改
     * @param entity
     * @return
     */
    //public boolean modify(SysUsrFunAuthRVO entity)throws BaseException;

    /**
     * 分页查询所有
     * @param page
     * @return
     */
    public List<SysUsrFunAuthRDTO> searchList(SysUsrFunAuthRQueryCondition qc)throws BaseException;
    /**
     * 根据组织架构移除关系表的角色信息
     */
    public boolean removeRoleByOrgId(Long orgId,List<Long> roleIds)throws BaseException;
    /**
     * 根据功能权限的关联关系移除功能权限关系表人员信息
     */
    public boolean removeSysUsrFunAuthRUsr(Long orgId,Long roleId,List<Long> usrIds)throws BaseException;

	/**
	 * 设置默认登陆角色
	 * @param usrId 用户id
	 * @param id 功能权限id
	 */
	void setDefaultOrgRole(Long usrId, Long id);

	/**
	 * 查询用户功能权限集合
	 * @param usrId
	 * @param sysCd
	 * @return
	 * @throws BaseException
	 */
	List<SysUsrFunAuthRDTO> getUsrSysUsrFunAuthR(Long usrId, String sysCd);
}
